﻿using System;

namespace OperationPlugins.Validators
{
    /// <summary>
    /// Validation levels
    /// </summary>
    [Serializable]
    public enum ValidationLevel
    {
        /// <summary>
        /// The first level of validation is to validate if the input is well-formed.
        /// 
        /// If this validation fails, then the second and the third level validations will not be performed, 
        /// and <see cref="Level1ValidationException"/> will be thrown!
        /// </summary>
        Level1 = 1,

        /// <summary>
        /// The second level of validation is to validate business rules errors.
        /// 
        /// If this validation fails, then the third level of validation will not be performed!
        /// </summary>
        Level2 = 2,

        /// <summary>
        /// The third level of validation is to validate if there are any notifications that should be shown 
        /// to the user.
        /// </summary>
        Level3 = 3
    }
}